package LeeJS;

public class J20_package {
	
	
	/*
			
			패키지(package)
			자바에서는 패키지를 이용해 관련 클래스나 유사한 기능을 가진 클래스들로 그룹화 할 수 있음
			자바 핵심 클래스는 java.lang 패키지에 있음
			자바 프로그램 작성에 도움을 주는 유틸리티 클래스들은 java.util 패키지에 있음
			java 로 시작하는 패키지 이름은 핵심 라이브러리를 위해 예약됨
			javax 로 시작하는 패키지는 java 라는 핵심 라이브러리를 확장한 라이브러리라는 의미임
			
			클래스를 조직화하고 패키징 함으로써 이름 충돌을 피할 수 있음
			예를 들어, A 회사에서 응용프로그램에 MathUtil을 사용하더라도 
			패키지만 다르면 다른 회사에서도 동일한 이름을 사용한 클래스를 만들 수 있음
			
			이러한 목적을 위해 패키지 표기법은 역방향 도메인 이름에 기초함
			예를 들어, java 공식홈페이지 주소는 java.sjn.com 임
			이것을 패키지 이름으로 작성한다면 com.sun.java 로 씀
			
			일반적으로 패키지는 조직성격.회사명.기타등등 순으로 작성하는 것이 관례임
			org.iedu.javaled17.아이디.프로젝트명.클래스명
			
			패키지는 물리적 개체가 아님 - 만드는 데 돈이 안듦
			따라서, 하나만 만들 필요가 없음
			패키지를 통해 클래스를 그룹화 할려면
			package 라는 예약어를 사용해야 함
			클래스의 패키지화는 클래스의 가시성에 영향을 줌
			
			패키지는 물리적인 객체가 아니지만
			패키지 이름은 소스파일의 물리적인 위치와 관련있음
			따라서, a.b.c 라는 패키지를 가진 클래스 D는 
			a/b/c 디렉토리 아래에 D라는 소스파일이 존재한다는 것을 의미
			
			한편 패키지 선언이 없는 클래스는 기본 패키지에 속해 있다고 말함
			기본(default) 페키지에 속한 클래스들은 기본 패키지 밖에서는 볼 수 없음
			
	 */
	
	
	
	public static void main(String[] args) {
		
		
		
		
		
		
		
		
		
	}
}
